import 'package:audio_test/core/utils/index.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

/// RootScreen 是应用的主界面
/// 这是一个 StatefulWidget，可以根据状态变化更新UI
class RootScreen extends StatefulWidget {
  /// 构造函数，使用 const 提高性能
  const RootScreen({super.key});

  /// 创建与该 Widget 关联的状态对象
  @override
  State<RootScreen> createState() => _RootScreenState();
}

/// RootScreen 的状态管理类
class _RootScreenState extends State<RootScreen> {
  String? _selectedFilePath;

  /// 构建 UI 界面
  ///
  /// @param context 上下文对象，提供有关当前 widget 在 widget 树中的位置信息
  /// @return 返回构建的 widget
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // 应用栏配置
      appBar: AppBar(
        // 设置标题文本和样式
        title: const Text('Root Screen', style: TextStyle(color: Colors.white)),
        // 设置应用栏背景颜色
        backgroundColor: Colors.deepPurple,
      ),
      // 主体内容区域
      body: Container(
        // 设置容器宽度为屏幕宽度
        width: MediaQuery.of(context).size.width,
        // 设置容器高度为屏幕高度
        height: MediaQuery.of(context).size.height,
        padding: EdgeInsets.all(12.0),
        // 设置背景颜色为白色
        color: Colors.white,
        // 子元素布局，使用列布局垂直排列
        child: Column(
          // 主轴对齐方式为居中
          mainAxisAlignment: MainAxisAlignment.center,
          // 交叉轴对齐方式为居中
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            // 文本按钮组件
            ElevatedButton(
              // 按钮点击事件处理函数（当前为空实现）
              onPressed: () async {
                Dialer.makePhoneCall('18118712413');
              },
              // 按钮显示的文本内容
              child: const Text('拨打 18118712413'),
            ),
            const SizedBox(height: 20),
            Text('选择的文件路径为：$_selectedFilePath'),
            // 文本按钮组件
            ElevatedButton(
              // 按钮点击事件处理函数（当前为空实现）
              onPressed: () async {
                final path = await FilePicker.pickFile();
                print('选择的文件路径为：$path');
                setState(() {
                  _selectedFilePath = path;
                });
              },
              // 按钮显示的文本内容
              child: const Text('选择开场白'),
            ),

            ElevatedButton(
              onPressed: () async {
                MethodChannel _channel = MethodChannel('preferences');
                await _channel.invokeMethod('setEnabled', true); // 传递true参数
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(
                    content: Text('答录机已启用'),
                    backgroundColor: Colors.green,
                  ),
                );
              },
              child: Text('启用答录机'),
            ),

            const SizedBox(height: 20),

            ElevatedButton(
              onPressed: () async {
                MethodChannel _channel = MethodChannel('preferences');
                await _channel.invokeMethod('setEnabled', false); // 传递false参数
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(
                    content: Text('答录机已禁用'),
                    backgroundColor: Colors.red,
                  ),
                );
              },
              child: Text('禁用答录机'),
            ),

            const SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                MethodChannel _channel = MethodChannel('preferences');
                final uri = await _channel.invokeMethod('getOpeningStatement');
                print('已保存的开场白录音的URI：$uri');

                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(
                    content: Text('已保存的开场白录音的URI：$uri'),
                    backgroundColor: Colors.red,
                  ),
                );
              },
              child: Text('查看已保存的开场白录音的URI'),
            ),
          ],
        ),
      ),
    );
  }
}
